import { logger } from '../../../types/constants'

/**
 * 页面工具类
 */
export class PageUtils {
  /**
   * 刷新页面
   */
  static refreshPage(): void {
    window.location.reload()
  }

  /**
   * 从 meta 标签获取编码
   */
  static getCharsetFromMetaTags(defaultValue: 'utf-8' | 'gbk' = 'utf-8'): string {
    // 检查 charset 属性
    const charsetMeta = $('meta[charset]').first()
    if (charsetMeta.length) {
      const charset = charsetMeta.attr('charset')?.toLowerCase()
      if (charset) {
        logger.debug(`从 meta charset 获取编码: ${charset}`)
        return charset
      }
    }

    // 检查 http-equiv 的 Content-Type
    const httpEquivMeta = $('meta[http-equiv="Content-Type"]')
    if (httpEquivMeta.length) {
      const content = httpEquivMeta.attr('content')
      if (content) {
        const charsetMatch = content.match(/charset\s*=\s*([^;]+)/i)
        if (charsetMatch) {
          const charset = charsetMatch[1].toLowerCase()
          logger.debug(`从 http-equiv 获取编码: ${charset}`)
          return charset
        }
      }
    }

    return defaultValue
  }
}
